<script>
	import {
		mapMutations
	} from 'vuex'
	import {
		NftWalletApi
	} from "@/api/modules/NftWallet.js"
	import APP_CONFIG from "@/config/app_config.js"
	import {
		ServerWalletApi
	} from "@/api/modules/ServerWallet.js"
	export default {
		globalData: {
			version: "",
			platform: ''
		},
		onLaunch: function() {
			//uni.setStorageSync('token', '39f0b6b0-3216-4925-97aa-77def04e9713')
			uni.setStorageSync('needWalletPasswd', true)
			ServerWalletApi.getConfig(APP_CONFIG.app_id, APP_CONFIG.config_type).then(res => {
				if (res.code == 0) {
					res.data.rpcurl = 'https://ssjh.jifenma.com/api/wallet/rpcurl'
					uni.setStorageSync("nftConfig", res.data)
					this.SET_NFT_CONFIG(res.data)
				}
			})
			// #ifdef APP-PLUS
			const platform = uni.getSystemInfoSync().platform
			console.log('platform', platform);
			getApp().globalData.platform = platform
			// 保存 app 版本信息
			plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => {
				console.log('widgetInfo', widgetInfo);
				getApp().globalData.version = widgetInfo.version;
				uni.setStorageSync('appVersion', getApp().globalData.version)
				// 检测 app 升级
				this.$store.dispatch('user/checkApp')
			});

			this.checkArguments(); // 检测启动参数  
			// 重点是以下： 一定要监听后台恢复 ！一定要   
			plus.globalEvent.addEventListener('newintent', (e) => {
				this.checkArguments(); // 检测启动参数  
			});
			// #endif
			// #ifdef MP-WEIXIN
			this.setNavbarSetting()
			// #endif
			
		},
		onShow: function() {
			// #ifndef MP-WEIXIN
			const token = uni.getStorageInfoSync("token")
			if (token) {
				this.handleFetchUserWallet()
			}
			console.log('token', token);
			// #endif
		},
		onHide: function() {
			console.log('App Hide')
		},
		methods: {
			...mapMutations("user", [
				"SET_WALLET_ADDRESS",
				"SET_WALLET_PRIVATEKEY",
				"SET_NFT_CONFIG"
			]),
			// #ifndef MP-WEIXIN
			async handleFetchUserWallet() {
				const res = await NftWalletApi.getUserWallet()
				console.log(1)
				if (res.code == 1) {
					this.SET_WALLET_ADDRESS(res.data.address)
					this.SET_WALLET_PRIVATEKEY(res.data.sk_key)
				}
			},
			// #endif
			checkArguments() {
				// #ifdef APP-PLUS
				console.log(49489494, plus.runtime);

				// 小程序返回
				if (plus.runtime.launcher == 'miniProgram') {
					if (plus.runtime.arguments == 1) {
						uni.redirectTo({
							url: '/pages/order/mineOrderList/mineOrderList?type=2'
						})
					}
				}

				if (plus.runtime.launcher == 'scheme') {
					// 通过快捷方式启动，iOS平台表示通过3D Touch快捷方式，Android平台表示通过桌面快捷方式启动  
					try {
						var args = plus.runtime.arguments;
						console.log('args', args);
						if (args) {
							// 处理args参数，如直达到某新页面等 
							let str = args.split('?')[1]
							setTimeout(() => {
								uni.navigateTo({
									url: '/pages/login/register/register?' + str
								})
							}, 50)
						}
					} catch (e) {
						console.log('Shortcut-exception: ' + e);
					}
				}

				// #endif
			},
			//设置顶部导航栏的对齐的方法和参数
			setNavbarSetting() {
				//-----------------------------------
				//微信小程序：
				// 顶部导航栏高度 = 手机系统状态栏高度 + 44px
				// 在onReady函数内，使用uni.getSystemInfo()获取系统信息得到statusBarHeight的高度就是（下图青绿色部分）；
				// 切记：不可以使用css变量–status-bar-height，这个变量是固定的25px（会导致不同手机的状态栏不兼容）
				uni.getSystemInfo({
					success: (result) => {
						// 获取手机系统的状态栏高度（不同手机的状态栏高度不同）  （ 不要使用uni-app官方文档的var(--status-bar-height) 官方这个是固定的20px  不对的 ）
						let statusBarHeight = result.statusBarHeight + 'px'

						// 获取右侧胶囊的信息 单位px
						const menuButtonInfo = uni.getMenuButtonBoundingClientRect()
						//bottom: 胶囊底部距离屏幕顶部的距离
						//height: 胶囊高度
						//left:   胶囊左侧距离屏幕左侧的距离
						//right:  胶囊右侧距离屏幕左侧的距离
						//top:    胶囊顶部距离屏幕顶部的距离
						//width:  胶囊宽度
						// console.log(menuButtonInfo.width, menuButtonInfo.height, menuButtonInfo.top)
						// 计算胶囊右侧距离屏幕右边距离 result.screenWidth - menuButtonInfo.right
						let menuWidth = menuButtonInfo.width
						let menuHeight = menuButtonInfo.height
						let menuBorderRadius = menuButtonInfo.height / 2
						let menuRight = result.screenWidth - menuButtonInfo.right
						let menuTop = menuButtonInfo.top
						let contentTop = result.statusBarHeight + 44

						let menuNumInfo = {
							statusBarHeight: statusBarHeight, //状态栏高度----用来给自定义导航条页面的顶部导航条设计padding-top使用：目的留出系统的状态栏区域
							menuWidth: menuWidth, //右侧的胶囊宽度--用来给自定义导航条页面的左侧胶囊设置使用
							menuHeight: menuHeight, //右侧的胶囊高度--用来给自定义导航条页面的左侧胶囊设置使用
							menuBorderRadius: menuBorderRadius, //一半的圆角--用来给自定义导航条页面的左侧胶囊设置使用
							menuRight: menuRight, //右侧的胶囊距离右侧屏幕距离--用来给自定义导航条页面的左侧胶囊设置使用
							menuTop: menuTop, //右侧的胶囊顶部距离屏幕顶部的距离--用来给自定义导航条页面的左侧胶囊设置使用
							contentTop: contentTop, //内容区距离页面最上方的高度--用来给自定义导航条页面的内容区定位距离使用
							screenHeight: result.screenHeight,
							screenWidth: result.screenWidth,
							safeArea: result.safeArea,
							safeAreaInsets: result.safeAreaInsets
						}
						uni.setStorageSync('menuNumInfo', menuNumInfo)
					},
					fail: (error) => {
						console.log(error)
					}
				})
			},
		}

	}
</script>

<style lang="scss">
	/* 注意要写在第一行，同时给style标签加入lang="scss"属性 */
	/* #ifndef APP-NVUE */
	@import "uview-ui/index.scss";
	#webpack-dev-server-client-overlay{
		display: none;
	}
	.status_bar {
		height: var(--status-bar-height);
		width: 100%;
	}

	.window-top {
		height: var(--window-top);
		width: 100%;
	}

	.window-bottom {
		height: var(--window-bottom);
		width: 100%;
	}

	/* 隐藏滚动条 */
	::-webkit-scrollbar {
		display: none;
	}

	body {
		--mainColor:#{$u-main-text-color}; //将scss变量转换成css变量
	}

	/* #endif */

	/* #ifdef APP-NVUE */
	@for $i from 0 through 80 {
		@if $i >=20 {
			.u-font-#{$i} {
				font-size: $i + rpx !important;
			}
		}

		@if $i < 20 {
			.u-font-#{$i} {
				font-size: $i + rpx !important;
			}
		}
	}

	/* #endif */
	// 定义内外边距，历遍1-80
	@for $i from 0 through 80 {

		// 只要双数和能被5除尽的数
		@if $i % 2==0 or $i % 5==0 {

			// 得出：u-margin-30或者u-m-30
			.u-p-x-#{$i} {
				padding-left: $i + rpx !important;
				padding-right: $i + rpx !important;
			}

			.u-p-y-#{$i} {
				padding-top: $i + rpx !important;
				padding-bottom: $i + rpx !important;
			}

			.u-m-x-#{$i} {
				margin-left: $i + rpx !important;
				margin-right: $i + rpx !important;
			}

			.u-m-y-#{$i} {
				margin-top: $i + rpx !important;
				margin-bottom: $i + rpx !important;
			}

			.u-m-#{$i} {
				margin-left: $i + rpx !important;
				margin-right: $i + rpx !important;
				margin-top: $i + rpx !important;
				margin-bottom: $i + rpx !important;
			}

			.u-p-#{$i} {
				padding-left: $i + rpx !important;
				padding-right: $i + rpx !important;
				padding-top: $i + rpx !important;
				padding-bottom: $i + rpx !important
			}

			.u-m-l-#{$i} {
				margin-left: $i + rpx !important;
			}

			.u-m-t-#{$i} {
				margin-top: $i + rpx !important;
			}

			.u-m-r-#{$i} {
				margin-right: $i + rpx !important;
			}

			.u-m-b-#{$i} {
				margin-bottom: $i + rpx !important;
			}

			.u-p-l-#{$i} {
				padding-left: $i + rpx !important;
			}

			.u-p-t-#{$i} {
				padding-top: $i + rpx !important;
			}

			.u-p-r-#{$i} {
				padding-right: $i + rpx !important;
			}

			.u-p-b-#{$i} {
				padding-bottom: $i + rpx !important;
			}
		}
	}

	.safe-bottom {
		padding-bottom: 0;
		padding-bottom: constant(safe-area-inset-bottom);
		padding-bottom: env(safe-area-inset-bottom);
	}

	@import './common/css/normal.scss';
</style>

<style>
	@import './common/css/common.css';
</style>